﻿// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证（版本 2.0）进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动！任何基于本项目二次开发而产生的一切法律纠纷和责任，我们不承担任何责任！

namespace Admin.NET.Plugin.DingTalk.RequestProxy.User;

public interface IUserRequestProxy : IHttpDispatchProxy
{
    [Post("https://oapi.dingtalk.com/topapi/v2/user/get"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
    Task<string> UserDetail([QueryString("access_token")] string accessToken, [Body] DTO.UserDetailRequest request);

    [Post("https://oapi.dingtalk.com/topapi/user/listsimple"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
    Task<string> UserListSimple([QueryString("access_token")] string accessToken, [Body] DTO.UserListSimpleRequest request);

    [Post("https://oapi.dingtalk.com/topapi/user/listid"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
    Task<string> UserListId([QueryString("access_token")] string accessToken, [Body] DTO.UserListIdRequest request);

    [Post("https://oapi.dingtalk.com/topapi/v2/user/list"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
    Task<string> UserList([QueryString("access_token")] string accessToken, [Body] DTO.UserListRequest request);

    [Post("https://oapi.dingtalk.com/topapi/role/list"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
    Task<string> RoleList([QueryString("access_token")] string accessToken, [Body] DTO.RoleListRequest request);
}